home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / graphic / pbmpl91d.zip / PBMPLUS / PATCH / MAKEFILE.PNM < prev    next >
Text File  |  1993-01-08  |  6KB  |  193 lines

  1. .SUFFIXES:    .out .a .o .c
  2. # Makefile for pnm tools.
  3. #
  4. # Copyright (C) 1989, 1991 by Jef Poskanzer.
  5. #
  6. # Permission to use, copy, modify, and distribute this software and its
  7. # documentation for any purpose and without fee is hereby granted, provided
  8. # that the above copyright notice appear in all copies and that both that
  9. # copyright notice and this permission notice appear in supporting
  10. # documentation.  This software is provided "as is" without express or
  11. # implied warranty.
  12.  
  13. # Default values, usually overridden by top-level Makefile.
  14. #CC =        cc
  15. CC =        gcc -ansi -pedantic -fcombine-regs -fpcc-struct-return
  16. #CFLAGS =    -O
  17. CFLAGS =    -g
  18. #CFLAGS =    -g -O
  19. TIFFDEF =    -DLIBTIFF
  20. TIFFINC =       -I../libtiff
  21. TIFFLIB =       ../libtiff/libtiff.a
  22. TIFFBINARIES =  tifftopnm pnmtotiff
  23. TIFFOBJECTS =   tifftopnm.o pnmtotiff.o
  24. #LDFLAGS =    -s
  25. LDFLAGS =    
  26. INSTALLBINARIES =    /usr/new/pbm
  27. INSTALLSCRIPTS =    $(INSTALLBINARIES)
  28. INSTALLMANUALS1 =    /usr/man/man1
  29. SUFFIXMANUALS1 =    1
  30. INSTALLMANUALS3 =    /usr/man/man3
  31. SUFFIXMANUALS3 =    3
  32. INSTALLMANUALS5 =    /usr/man/man5
  33. SUFFIXMANUALS5 =    5
  34. MANCP =            cp
  35.  
  36. PPMDIR =    ../ppm
  37. INCLUDEPPM =    -I$(PPMDIR)
  38. LIBPPM =    $(PPMDIR)/libppm.a
  39. DEFPPM =    $(PPMDIR)/ppm.h
  40. DEFLIBPPM =    $(PPMDIR)/libppm.h
  41.  
  42. PGMDIR =    ../pgm
  43. INCLUDEPGM =    -I$(PGMDIR)
  44. LIBPGM =    $(PGMDIR)/libpgm.a
  45. DEFPGM =    $(PGMDIR)/pgm.h
  46. DEFLIBPGM =    $(PGMDIR)/libpgm.h
  47.  
  48. PBMDIR =    ../pbm
  49. INCLUDEPBM =    -I$(PBMDIR)
  50. LIBPBM =    $(PBMDIR)/libpbm.a
  51. DEFPBM =    $(PBMDIR)/pbm.h ../pbmplus.h
  52. DEFLIBPBM =    $(PBMDIR)/libpbm.h
  53.  
  54. INCLUDE =    -I.. $(INCLUDEPPM) $(INCLUDEPGM) $(INCLUDEPBM)
  55. ALLCFLAGS =    $(CFLAGS) $(INCLUDE) $(TIFFDEF) $(TIFFINC)
  56. LIBPNM =    libpnm.a
  57.  
  58. PORTBINARIES =    pnmarith pnmcat pnmconvol pnmcrop pnmcut \
  59.         pnmdepth pnmenlarge pnmfile pnmflip pnminvert \
  60.         pnmnoraw pnmpaste pnmscale pnmtile pnmtops \
  61.         pnmtorast pnmtoxwd rasttopnm xwdtopnm pnmcomp
  62. MATHBINARIES =    pnmgamma pnmrotate pnmshear
  63. BINARIES =      $(PORTBINARIES) $(MATHBINARIES) $(TIFFBINARIES)
  64. SCRIPTS =    anytopnm pnmindex pnmmargin pnmsmooth
  65.  
  66. PORTOBJECTS =    pnmarith.o pnmcat.o pnmconvol.o pnmcrop.o pnmcut.o \
  67.         pnmdepth.o pnmenlarge.o pnmfile.o pnmflip.o pnminvert.o \
  68.         pnmnoraw.o pnmpaste.o pnmscale.o pnmtile.o pnmtops.o \
  69.         pnmtorast.o pnmtoxwd.o rasttopnm.o xwdtopnm.o \
  70.         pnmgamma.o pnmrotate.o pnmshear.o pnmcomp.o
  71. OBJECTS =    $(PORTOBJECTS) $(TIFFOBJECTS)
  72.  
  73. MANUALS1 =    $(BINARIES) $(SCRIPTS)
  74. MANUALS3 =    libpnm
  75. MANUALS5 =    pnm
  76.  
  77.  
  78. #all:        binaries
  79. all:        merge
  80. #install:    install.bin
  81. install:    install.merge
  82.  
  83.  
  84. binaries:    $(BINARIES)
  85.  
  86. install.bin:    binaries $(SCRIPTS)
  87.     cd $(INSTALLBINARIES) ; rm -f $(BINARIES)
  88.     cp $(BINARIES) $(INSTALLBINARIES)
  89.     cd $(INSTALLSCRIPTS) ; rm -f $(SCRIPTS)
  90.     cp $(SCRIPTS) $(INSTALLSCRIPTS)
  91.     cd $(INSTALLSCRIPTS) ; chmod +x $(SCRIPTS)
  92.  
  93.  
  94. merge:        pnmmerge
  95. pnmmerge:    pnmmerge.c $(OBJECTS) $(LIBPNM) $(LIBPPM) $(LIBPGM) $(LIBPBM)
  96.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c $(OBJECTS) -lm $(LIBPNM) $(LIBPPM) $(LIBPGM) $(LIBPBM) $(TIFFLIB)
  97.     -aout2exe $@
  98.  
  99. install.merge:    install.pnmmerge $(SCRIPTS)
  100. install.pnmmerge:    pnmmerge
  101.     cd $(INSTALLBINARIES) ; rm -f $(BINARIES)
  102.     cp pnmmerge $(INSTALLBINARIES)
  103.     cd $(INSTALLBINARIES) ; for i in $(BINARIES) ; do ln pnmmerge $$i ; done
  104.     rm $(INSTALLBINARIES)/pnmmerge
  105.     cd $(INSTALLSCRIPTS) ; rm -f $(SCRIPTS)
  106.     cp $(SCRIPTS) $(INSTALLSCRIPTS)
  107.     cd $(INSTALLSCRIPTS) ; chmod +x $(SCRIPTS)
  108.  
  109.  
  110. install.man:
  111.     for i in $(MANUALS1) ; do \
  112.         rm -f $(INSTALLMANUALS1)/$$i.$(SUFFIXMANUALS1) ; \
  113.         $(MANCP) $$i.1 $(INSTALLMANUALS1)/$$i.$(SUFFIXMANUALS1) ; \
  114.     done
  115.     for i in $(MANUALS3) ; do \
  116.         rm -f $(INSTALLMANUALS3)/$$i.$(SUFFIXMANUALS3) ; \
  117.         $(MANCP) $$i.3 $(INSTALLMANUALS3)/$$i.$(SUFFIXMANUALS3) ; \
  118.     done
  119.     for i in $(MANUALS5) ; do \
  120.         rm -f $(INSTALLMANUALS5)/$$i.$(SUFFIXMANUALS5) ; \
  121.         $(MANCP) $$i.5 $(INSTALLMANUALS5)/$$i.$(SUFFIXMANUALS5) ; \
  122.     done
  123.  
  124.  
  125. # Rules for plain programs.
  126. $(PORTBINARIES) $(TIFFBINARIES):    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) $(LIBPNM) $(LIBPPM) $(LIBPGM) $(LIBPBM) $(TIFFLIB)
  127.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c $(LIBPNM) $(LIBPPM) $(LIBPGM) $(LIBPBM) $(TIFFLIB)
  128.     -aout2exe  $@
  129.  
  130. # Rule for math-dependent programs.
  131. $(MATHBINARIES):        pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) $(LIBPNM) \
  132.             $(LIBPPM) $(LIBPGM) $(LIBPBM)
  133.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c -lm $(LIBPNM) $(LIBPPM) $(LIBPGM) $(LIBPBM)
  134.     -aout2exe $@
  135.  
  136. # Rule for objects.
  137. $(OBJECTS):    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM)
  138.     $(CC) $(ALLCFLAGS) -Dmain=$*_main -c $*.c
  139.  
  140. # And libraries.
  141. $(LIBPBM):
  142.     cd $(PBMDIR) ; make lib
  143. $(LIBPGM) FOO:
  144.     cd $(PGMDIR) ; make lib
  145. $(LIBPPM) BAR:
  146.     cd $(PPMDIR) ; make lib
  147. lib:        $(LIBPNM)
  148. $(LIBPNM):    libpnm1.o libpnm2.o libpnm3.o libpnm4.o
  149.     -rm $(LIBPNM)
  150.     ar rc $(LIBPNM) libpnm1.o libpnm2.o libpnm3.o libpnm4.o
  151.     -ranlib $(LIBPNM)
  152.  
  153. libpnm1.o:    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm1.c
  154.     $(CC) $(ALLCFLAGS) -c libpnm1.c
  155. libpnm2.o:    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm2.c $(DEFLIBPPM) \
  156.         $(DEFLIBPGM) $(DEFLIBPBM)
  157.     $(CC) $(ALLCFLAGS) -c libpnm2.c
  158. libpnm3.o:    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm3.c $(DEFLIBPPM) \
  159.         $(DEFLIBPGM) $(DEFLIBPBM)
  160.     $(CC) $(ALLCFLAGS) -c libpnm3.c
  161. libpnm4.o:    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) rast.h libpnm4.c
  162.     $(CC) $(ALLCFLAGS) -c libpnm4.c
  163.  
  164. # Other dependencies.
  165. pnmarith pnmarith.o:        pnmarith.c
  166. pnmcat pnmcat.o:        pnmcat.c
  167. pnmconvol pnmconvol.o:        pnmconvol.c
  168. pnmcrop pnmcrop.o:        pnmcrop.c
  169. pnmcut pnmcut.o:        pnmcut.c
  170. pnmdepth pnmdepth.o:        pnmdepth.c
  171. pnmenlarge pnmenlarge.o:    pnmenlarge.c
  172. pnmfile pnmfile.o:        pnmfile.c
  173. pnmflip pnmflip.o:        pnmflip.c
  174. pnmgamma pnmgamma.o:        pnmgamma.c
  175. pnminvert pnminvert.o:        pnminvert.c
  176. pnmnoraw pnmnoraw.o:        pnmnoraw.c
  177. pnmpaste pnmpaste.o:        pnmpaste.c
  178. pnmrotate pnmrotate.o:        pnmrotate.c
  179. pnmscale pnmscale.o:        pnmscale.c
  180. pnmshear pnmshear.o:        pnmshear.c
  181. pnmtile pnmtile.o:        pnmtile.c
  182. pnmtops pnmtops.o:        pnmtops.c
  183. pnmtorast pnmtorast.o:        pnmtorast.c rast.h
  184. pnmtotiff pnmtotiff.o:        pnmtotiff.c
  185. pnmtoxwd pnmtoxwd.o:        pnmtoxwd.c x11wd.h
  186. rasttopnm rasttopnm.o:        rasttopnm.c rast.h
  187. tifftopnm tifftopnm.o:        tifftopnm.c
  188. xwdtopnm xwdtopnm.o:        xwdtopnm.c x10wd.h x11wd.h
  189. pnmcomp pncomp.o:            pnmcomp.c
  190.  
  191. clean:
  192.     -rm -f *.o *.a *.cat core $(BINARIES) pnmmerge *.exe
  193.